Digital media applications and devices are becoming more and more popular. Additionally, people are more frequently using computers in homes, workplaces, and schools to interact with the applications and devices. For example, people are recording audio and video streams using devices such as portable media devices and video camcorders. People may record minutes or even hours of such audio and video onto temporary storage mediums, such as analog or digital cassette tapes, and transfer those multimedia streams to more permanent storage mediums, such as digital versatile discs (DVDs) and compact discs (CDs). To transfer such streams from one storage medium to another, people may use desktop or laptop computers. These transfers tend to use a mass storage device to store the data, which may be a hard disk drive or an optical storage drive.
When compared to storage of conventional data on a mass storage device, these new multimedia streams tend to involve transferring relatively larger amounts of data between the computer and the storage device. Additionally, such multimedia streams frequently require adherence to critical transfer timing parameters or otherwise create error-laden or inferior quality multimedia streams. For example, a system recording a video stream may risk dropping frames of video information if the mass storage device misses a timing parameter, such as a transfer deadline.
To complicate matters, additional operating factors may also impact or affect the storage of these modern data streams. One factor may involve concurrently using multiple applications on a single platform. For example, a user may record multiple streams of multimedia content while simultaneously executing applications, such as Microsoft® Excel® or Microsoft® Word, which generate small random input-output (I/O) tasks for the platform and data storage device. In a scenario like this, a storage controller of the platform will receive numerous I/O requests coming from the concurrent applications. Unfortunately, existing controllers and/or device drivers cannot always adequately handle high priority asynchronous data requests along with isochronous requests that are received in order to complete the requests by required request deadlines. Existing hardware and software, including device drives, have no means to identify isochronous requests and associated specific completion deadlines for those requests, in order to help prevent bottlenecks and degrades system performance when processing asynchronous and isochronous I/O requests. Additionally, as platforms are designed with faster processor frequencies and dual/multi-core processors, the processor computation time for handling media requests will shrink and exacerbate the problem of meeting the request deadlines.